home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
MATHEMAT
/
STATISTI
/
0850C.ZIP
/
SET3.ARC
/
DATA-RCL.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1979-12-31
|
20KB
|
863 lines
VAR XFILE:TEXT;
YFILE:TEXT;
ZFILE:TEXT;
X:REAL;
CHOICE,NUMCELL1,G,NUMADD,NUMCOR,H,L,M,NUMROW,NUMCELL,K,SWITCH4,I,NUMCOL,J:INTEGER;
NUMLEVEL:INTEGER;
SWITCH3:CHAR;
FILENAME:STRING[12];
FILENAM2:STRING[12];
FILENAM3:STRING[12];
NUMTODEL:ARRAY[1..100] OF INTEGER;
SWITCH2:BOOLEAN;
F:ARRAY[1..11] OF TEXT;
FILENAM:ARRAY[1..11] OF STRING[12];
FILENAMX:STRING[12];
C:CHAR;
PROCEDURE DATAIN;
BEGIN
WRITELN ('COLUMN BY ROW BY LEVEL DATA ENTRY');
WRITE ('DO YOU WANT A PRINTOUT (Y/N)');
READLN (SWITCH3);
IF SWITCH3='Y' THEN SWITCH4:=1;
IF SWITCH3='y' THEN SWITCH4:=1;
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'COLUMN BY ROW BY LEVEL DATA ENTRY');èEND;
WRITE ('ENTER FILE NAME TO CALL THE DATA: ');
READLN (FILENAME);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'ENTER FILE NAME TO CALL THE DATA: ',FILENAME);
END;
ASSIGN (XFILE,FILENAME);
REWRITE (XFILE);
X:=6;
WRITELN (XFILE,X); {LEVEL}
WRITE ('NUMBER OF COLUMNS = ');
READLN (NUMCOL);
X:=NUMCOL;
WRITELN (XFILE,X); {COL}
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER OF COLUMNS = ',NUMCOL);
END;
WRITE ('NUMBER OF ROWS = ');
READLN (NUMROW);
X:=NUMROW;
WRITELN (XFILE,X);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER OF ROWS = ',NUMROW);
END;èWRITE ('NUMBER OF LEVELS = ');
READLN (NUMLEVEL);
X:=NUMLEVEL;
WRITELN (XFILE,X);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER OF LEVELS = ',NUMLEVEL);
END;
WRITE ('NUMBER PER CELL = ');
READLN (NUMCELL);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER PER CELL = ',NUMCELL);
END;
X:=NUMCELL;
WRITELN (XFILE,X);
IF SWITCH4=1 THEN BEGIN
WRITE ('NUMBER PER CELL = ',NUMCELL);
END;
FOR I:=1 TO NUMCOL DO
BEGIN
WRITE ('COLUMN ',I,', ');
IF SWITCH4=1 THEN BEGIN
WRITE (LST,'COLUMN ',I,', ');
END;
FOR J:=1 TO NUMROW DO
BEGINèWRITE ('ROW ',J,', ');
IF SWITCH4=1 THEN BEGIN
WRITE (LST,'ROW ',J,', ');
END;
FOR L:=1 TO NUMLEVEL DO
BEGIN
WRITELN ('LEVEL ',L);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'LEVEL ',L);
END;
FOR K:=1 TO NUMCELL DO
BEGIN
WRITE ('ITEM ',K,' = ');
READLN (X);
WRITELN (XFILE,X);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'ITEM X ',K:4,' = ',X:8:3);
END;
END;
END;
END;
END;
CLOSE (XFILE);
END;
PROCEDURE DATAOUT;è
BEGIN
WRITELN ('COLUMN BY ROW BY LEVEL DATA OUTPUT');
WRITE ('DO YOU WANT A PRINTOUT (Y/N)');
READLN (SWITCH3);
IF SWITCH3='Y' THEN SWITCH4:=1;
IF SWITCH3='y' THEN SWITCH4:=1;
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'COLUMN BY ROW BY LEVEL DATA OUTPUT');
END;
WRITE ('ENTER FILE NAME TO CALL THE DATA: ');
READLN (FILENAME);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'ENTER FILE NAME TO CALL THE DATA: ',FILENAME);
END;
ASSIGN (XFILE,FILENAME);
RESET (XFILE);
READLN (XFILE,X); {LEVEL}
READLN (XFILE,X);
NUMCOL:=ROUND(X);
WRITELN ('NUMBER OF COLUMNS = ',NUMCOL);
IF SWITCH4=1 THEN BEGINèWRITELN (LST,'NUMBER OF COLUMNS = ',NUMCOL);
END;
READLN (XFILE,X);
NUMROW:=ROUND(X);
WRITELN ('NUMBER OF ROWS = ',NUMROW);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER OF ROWS = ',NUMROW);
END;
READLN (XFILE,X);
NUMLEVEL:=ROUND(X);
WRITELN ('NUMBER OF LEVELS = ',NUMLEVEL);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER OF LEVELS = ',NUMLEVEL);
END;
READLN (XFILE,X);
NUMCELL:=ROUND(X);
WRITELN ('NUMBER PER CELL = ',NUMCELL);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER PER CELL = ',NUMCELL);
END;
FOR I:=1 TO NUMCOL DO
BEGIN
WRITE ('COLUMN ',I,', ');
IF SWITCH4=1 THEN BEGINèWRITE (LST,'COLUMN ',I,', ');
END;
FOR J:=1 TO NUMROW DO
BEGIN
WRITE ('ROW ',J,', ');
IF SWITCH4=1 THEN BEGIN
WRITE (LST,'ROW ',J,', ');
END;
FOR M:=1 TO NUMLEVEL DO
BEGIN
WRITELN ('LEVEL ',M);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'LEVEL ',M);
END;
FOR K:=1 TO NUMCELL DO
BEGIN
READLN (XFILE,X);
WRITELN ('ITEM ',K,' = ',X:8:3);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'ITEM ',K:4,' = ',X:8:3);
END;
END;
END;
END;
END;
CLOSE (XFILE);èEND;
PROCEDURE DATAADD;
BEGIN
WRITELN ('COLUMN BY ROW BY LEVEL DATA ADDITION');
WRITE ('DO YOU WANT A PRINTOUT (Y/N)');
READLN (SWITCH3);
IF SWITCH3='Y' THEN SWITCH4:=1;
IF SWITCH3='y' THEN SWITCH4:=1;
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'COLUMN BY ROW BY LEVEL DATA ADDITION');
END;
WRITE ('ENTER FILE NAME OF THE ORIGINAL DATA: ');
READLN (FILENAME);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'ENTER FILE NAME OF THE ORIGINAL DATA: ',FILENAME);
END;
WRITE ('ENTER A FILE NAME TO CALL THE NEW FILE: ');
READLN (FILENAM2);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'ENTER A FILE NAME FOR THE NEW FILE: ',FILENAM2);
END;è
ASSIGN (XFILE,FILENAME);
ASSIGN (YFILE,FILENAM2);
RESET (XFILE);
REWRITE (YFILE);
READLN (XFILE,X); {LEVEL}
WRITELN (YFILE,X);
WRITE ('NUMBER TO BE ADDED TO EACH CELL = ');
READLN (NUMADD);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER TO BE ADDED TO EACH CELL = ');
END;
READLN (XFILE,X); {COL}
NUMCOL:=ROUND(X);
WRITELN ('NUMBER OF COLUMNS = ',NUMCOL);
IF SWITCH4=1 THEN BEGIN
WRITELN ('NUMBER LST,OF COLUMNS = ',NUMCOL);
END;
WRITELN (YFILE,X);
READLN (XFILE,X); {ROW}
NUMROW:=ROUND(X);èWRITELN ('NUMBER OF ROWS = ',NUMROW);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER OF ROWS = ',NUMROW);
END;
WRITELN (YFILE,X);
READLN (XFILE,X); {LEVEL}
NUMLEVEL:=ROUND(X);
WRITELN ('NUMBER OF LEVELS = ',NUMLEVEL);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER OF LEVELS = ',NUMLEVEL);
END;
WRITELN (YFILE,X);
READLN (XFILE,X); {CELL}
NUMCELL:=ROUND(X);
WRITELN ('NUMBER PER CELL = ',NUMCELL);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER PER CELL = ',NUMCELL);
END;
X:=X+NUMADD;
WRITELN (YFILE,X);
èFOR I:=1 TO NUMCOL DO
BEGIN
WRITE ('COLUMN ',I,', ');
IF SWITCH4=1 THEN BEGIN
WRITE (LST,'COLUMN ',I,', ');
END;
FOR J:=1 TO NUMROW DO
BEGIN
WRITE ('ROW ',J,', ');
IF SWITCH4=1 THEN BEGIN
WRITE (LST,'ROW ',J,', ');
END;
FOR M:=1 TO NUMLEVEL DO
BEGIN
WRITELN ('LEVEL ',M);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'LEVEL ',M);
END;
FOR K:=1 TO NUMCELL DO
BEGINèREADLN (XFILE,X);
WRITELN (YFILE,X);
WRITELN ('ITEM ',K,' = ',X:8:3);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'ITEM ',K:4,' = ',X:8:3);
END;
END;
FOR L:=1 TO NUMADD DO
BEGIN
WRITE ('ITEM ',K+L,' = ');
READLN (X);
WRITELN (YFILE,X);
END;
END;
END;
END;
CLOSE (XFILE);
CLOSE (YFILE);
END;
PROCEDURE CORRECT;
BEGIN
WRITELN ('COLUMN BY ROW BY LEVEL DATA CORRECTION');
WRITE ('DO YOU WANT A PRINTOUT (Y/N)');èREADLN (SWITCH3);
IF SWITCH3='Y' THEN SWITCH4:=1;
IF SWITCH3='y' THEN SWITCH4:=1;
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'COLUMN BY ROW BY LEVEL DATA CORRECTION');
END;
WRITE ('ENTER FILE NAME OF THE ORIGINAL DATA: ');
READLN (FILENAME);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'ENTER FILE NAME OF THE ORIGINAL DATA: ',FILENAME);
END;
WRITE ('ENTER FILE NAME TO CALL THE NEW DATA: ');
READLN (FILENAM2);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'ENTER FILE NAME TO CALL THE NEW DATA: ',FILENAM2);
END;
ASSIGN (XFILE,FILENAME);
ASSIGN (YFILE,FILENAM2);
RESET (XFILE);
REWRITE (YFILE);
READLN (XFILE,X); {LEVEL}
WRITELN (YFILE,X);
èREADLN (XFILE,X); {COLUMN}
NUMCOL:=ROUND(X);
WRITELN ('NUMBER OF COLUMNS = ',NUMCOL);
IF SWITCH4=1 THEN BEGIN
WRITELN ('NUMBER LST,OF COLUMNS = ',NUMCOL);
END;
WRITELN (YFILE,X);
READLN (XFILE,X); {ROW}
NUMROW:=ROUND(X);
WRITELN ('NUMBER OF ROWS = ',NUMROW);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER OF ROWS = ',NUMROW);
END;
WRITELN (YFILE,X);
READLN (XFILE,X); {LEVEL}
NUMLEVEL:=ROUND(X);
WRITELN ('NUMBER OF ROWS = ',NUMLEVEL);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER OF ROWS = ',NUMLEVEL);
END;
WRITELN (YFILE,X);
READLN (XFILE,X); {CELL}èNUMCELL:=ROUND(X);
WRITELN ('NUMBER PER CELL = ',NUMCELL);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER PER CELL = ',NUMCELL);
END;
WRITELN (YFILE,X);
FOR I:=1 TO NUMCOL DO
BEGIN
WRITE ('COLUMN ',I);
IF SWITCH4=1 THEN BEGIN
WRITE (LST,'COLUMN ',I);
END;
FOR J:=1 TO NUMROW DO
BEGIN
WRITE ('ROW ',J);
IF SWITCH4=1 THEN BEGIN
WRITE (LST,'ROW ',J);
END;
FOR M:=1 TO NUMLEVEL DO
BEGIN
WRITELN ('LEVEL',M);
WRITE ('NUMBER OF ITEMS TO CORRECT IN THIS CELL = ');
READLN (NUMADD);
IF SWITCH4=1 THEN BEGINèWRITELN (LST,'LEVEL',M);
WRITELN (LST,'NUMBER OF ITEMS TO CORRECT IN THIS CELL = ',NUMADD);
END;
L:=1;
FOR G:=1 TO NUMADD DO
BEGIN
WRITE ('ITEM NUMBER TO BE CORRECTED = ');
READLN (NUMCOR);
IF L>NUMCOR THEN BEGIN
WRITELN ('YOU HAVE TRIED TO CORRECT AN EARLIER ITEM AFTER CORRECTING A LATER');
WRITELN ('ONE. I AM CLOSING THE FILE AND YOU WILL HAVE TO TRY AGAIN.');
CLOSE (XFILE);
ERASE (YFILE);
END;
FOR K:=L TO NUMCOR-1 DO
BEGIN
READLN (XFILE,X);
WRITELN (YFILE,X);
END;
L:=NUMCOR+1;
READLN (XFILE,X);
WRITE ('CORRECTED ITEM = ');
READLN (X);
WRITELN (YFILE,X);
IF SWITCH4=1 THEN BEGINèWRITELN (LST,'CORRECTED ITEM = ',X:8:3);
END;
END;
FOR K:=L TO NUMCELL DO
BEGIN
READLN (XFILE,X);
WRITELN (YFILE,X);
END;
END;
END;
END;
CLOSE (XFILE);
CLOSE (YFILE);
END;
PROCEDURE DELETE;
BEGIN
WRITELN ('COLUMN BY ROW BY LEVEL DATA DELETION');
WRITE ('DO YOU WANT A PRINTOUT (Y/N)');
READLN (SWITCH3);
IF SWITCH3='Y' THEN SWITCH4:=1;
IF SWITCH3='y' THEN SWITCH4:=1;
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'COLUMN BY ROW BY LEVEL DATA DELETION');
END;
èWRITE ('ENTER FILE NAME OF THE ORIGINAL DATA: ');
READLN (FILENAME);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'ENTER FILE NAME OF THE ORIGINAL DATA: ',FILENAME);
END;
WRITE ('ENTER FILE NAME TO CALL THE NEW DATA: ');
READLN (FILENAM2);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'ENTER FILE NAME TO CALL THE NEW DATA: ',FILENAM2);
END;
ASSIGN (XFILE,FILENAME);
ASSIGN (YFILE,FILENAM2);
RESET (XFILE);
REWRITE (YFILE);
READLN (XFILE,X); {LEVEL}
WRITELN (YFILE,X);
WRITE ('TOTAL NUMBER OF ITEMS TO BE DELETED FROM EACH CELL = ');
READLN (NUMADD);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'TOTAL NUMBER OF ITEMS TO BE DELETED FROM TO EACH CELL = ');
END;
READLN (XFILE,X); {COL}èNUMCOL:=ROUND(X);
WRITELN ('NUMBER OF COLUMNS = ',NUMCOL);
IF SWITCH4=1 THEN BEGIN
WRITELN ('NUMBER LST,OF COLUMNS = ',NUMCOL);
END;
WRITELN (YFILE,X);
READLN (XFILE,X); {ROW}
NUMROW:=ROUND(X);
WRITELN ('NUMBER OF ROWS = ',NUMROW);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER OF ROWS = ',NUMROW);
END;
WRITELN (YFILE,X);
READLN (XFILE,X); {LEVEL}
NUMLEVEL:=ROUND(X);
WRITELN ('NUMBER OF ROWS = ',NUMLEVEL);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER OF ROWS = ',NUMLEVEL);
END;
WRITELN (YFILE,X);
READLN (XFILE,X); {CELL}
NUMCELL:=ROUND(X);èWRITELN ('NUMBER PER CELL = ',NUMCELL);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER PER CELL = ',NUMCELL);
END;
X:=X-NUMADD;
WRITELN (YFILE,X);
FOR I:=1 TO NUMADD DO
BEGIN
WRITE ('NUMBER OF ITEM ',I,' TO BE DELETED FROM EACH CELL = ');
READLN (NUMTODEL[I]);
END;
FOR I:=1 TO NUMCOL DO
BEGIN
FOR J:=1 TO NUMROW DO
BEGIN
FOR M:=1 TO NUMLEVEL DO
BEGIN
L:=1;
FOR G:=1 TO NUMADD DO
IF L>NUMTODEL[G] THEN BEGIN
WRITELN ('YOU HAVE TRIED TO CORRECT AN EARLIER ITEM AFTER CORRECTING A LATER');
WRITELN ('ONE. I AM CLOSING THE FILE AND YOU WILL HAVE TO TRY AGAIN.');èCLOSE (XFILE);
ERASE (YFILE);
END;
FOR M:=L TO NUMTODEL[G]-1 DO
BEGIN
READLN (XFILE,X);
WRITELN (YFILE,X);
END;
L:=NUMTODEL[G]+1;
READLN (XFILE,X);
FOR K:=L TO NUMCELL DO
BEGIN
READLN (XFILE,X);
WRITELN (YFILE,X);
END;
END;
END;
END;
CLOSE (XFILE);
CLOSE (YFILE);
END;
PROCEDURE COMBINE;
BEGIN
WRITELN ('COLUMN BY ROW BY LEVEL DATA COMBINATION');èWRITE ('DO YOU WANT A PRINTOUT (Y/N)');
READLN (SWITCH3);
IF SWITCH3='Y' THEN SWITCH4:=1;
IF SWITCH3='y' THEN SWITCH4:=1;
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'COLUMN BY ROW BY LEVEL DATA COMBINATION');
END;
WRITE ('ENTER FILE NAME TO CALL THE COMBINED DATA: ');
READLN (FILENAME);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'ENTER FILE NAME TO CALL THE COMBINED DATA: ',FILENAME);
END;
WRITE ('ENTER FILE NAME OF FIRST DATA SOURCE: ');
READLN (FILENAM2);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'ENTER FILE NAME OF FIRST DATA SOURCE: ',FILENAM2);
END;
WRITE ('ENTER FILE NAME OF SECOND DATA SOURCE: ');
READLN (FILENAM3);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'ENTER FILE NAME OF SECOND DATA SOURCE: ',FILENAM3);
END;
ASSIGN (XFILE,FILENAME);
ASSIGN (YFILE,FILENAM2);
ASSIGN (ZFILE,FILENAM3);èREWRITE (XFILE);
RESET (YFILE);
RESET (ZFILE);
READLN (YFILE,X); {LEVEL}
READLN (ZFILE,X);
WRITELN (XFILE,X);
READLN (YFILE,X); {COLUMN}
READLN (ZFILE,X);
NUMCOL:=ROUND(X);
WRITELN ('NUMBER OF COLUMNS = ',NUMCOL);
IF SWITCH4=1 THEN BEGIN
WRITELN ('NUMBER LST,OF COLUMNS = ',NUMCOL);
END;
WRITELN (XFILE,X);
READLN (YFILE,X); {ROW}
READLN (ZFILE,X);
NUMROW:=ROUND(X);
WRITELN ('NUMBER OF ROWS = ',NUMROW);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER OF ROWS = ',NUMROW);
END;
WRITELN (XFILE,X);è
READLN (YFILE,X); {LEVEL}
READLN (ZFILE,X);
NUMLEVEL:=ROUND(X);
WRITELN ('NUMBER OF ROWS = ',NUMLEVEL);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER OF ROWS = ',NUMLEVEL);
END;
WRITELN (XFILE,X);
READLN (YFILE,X); {CELL}
NUMCELL1:=ROUND(X);
READLN (ZFILE,X);
NUMCELL:=ROUND(X);
WRITELN ('NUMBER PER CELL = ',NUMCELL);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER PER CELL = ',NUMCELL);
END;
X:=NUMCELL+NUMCELL1;
WRITELN (XFILE,X);
FOR I:=1 TO NUMCOL DO
BEGIN
WRITE ('COLUMN ',I,', ');èIF SWITCH4=1 THEN BEGIN
WRITE (LST,'COLUMN ',I,', ');
END;
FOR J:=1 TO NUMROW DO
BEGIN
WRITE ('ROW ',J,', ');
IF SWITCH4=1 THEN BEGIN
WRITE (LST,'ROW ',J,', ');
END;
FOR M:=1 TO NUMLEVEL DO
BEGIN
WRITELN ('LEVEL',M);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'LEVEL',M);
END;
FOR K:=1 TO NUMCELL1 DO
BEGIN
READLN (YFILE,X);
WRITELN (XFILE,X);
WRITELN ('ITEM ',K,' = ',X:8:3);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'ITEM X ',K:4,' = ',X:8:3);
END;
END;èFOR L:=1 TO NUMCELL DO
BEGIN
READLN (ZFILE,X);
WRITELN ('ITEM ',K+L,' = ',X:8:3);
WRITELN (XFILE,X);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'ITEM ',K+L,' = ',X:8:3);
END;
END;
END;
END;
END;
CLOSE (XFILE);
CLOSE (YFILE);
CLOSE (ZFILE);
END;
PROCEDURE SEPARATE;
BEGIN
WRITELN ('COLUMN BY ROW BY LEVEL DATA SEPARATION TO N COLUMN BY ROW FILES');
WRITE ('DO YOU WANT A PRINTOUT (Y/N)');
READLN (SWITCH3);
IF SWITCH3='Y' THEN SWITCH4:=1;
IF SWITCH3='y' THEN SWITCH4:=1;
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'COLUMN BY ROW BY LEVEL DATA SEPARATION TO N COLUMN BY ROW FILES,');èEND;
WRITE ('NAME OF DATA FILE: ');
READLN (FILENAMX);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NAME OF DATA FILE: ',FILENAMX);
END;
ASSIGN (XFILE,FILENAMX);
RESET (XFILE);
READLN (XFILE,X); {LEVEL}
READLN (XFILE,X); {COLUMN}
WRITELN ('NUMBER OF COLUMNS TO SEPARATE = ',X:5:0);
NUMCOL:=ROUND(X);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER OF COLUMNS TO SEPARATE = ',X:5:0);
END;
READLN (XFILE,X);
NUMROW:=ROUND(X);
WRITELN ('NUMBER OF ROWS IN EACH COLUMN = ',X:5:0);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER OF ROWS IN EACH COLUMN = ',X:5:0);
END;
READLN (XFILE,X);
NUMLEVEL:=ROUND(X);èWRITELN ('NUMBER OF LEVELS IN EACH ROW = ',X:5:0);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER OF LEVELS IN EACH ROW = ',X:5:0);
END;
READLN (XFILE,X); {NUM IN CELL}
NUMCELL:=ROUND(X);
WRITELN ('NUMBER OF ITEMS IN EACH CELL = ',X:5:0);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER OF ITEMS IN EACH CELL = ',X:5:0);
END;
FOR I:=1 TO NUMCOL DO
BEGIN
WRITE ('NAME OF FILE ',I,' FOR SEPARATION: ');
READLN (FILENAME[I]);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NAME OF FILE ',I,' FOR SEPARATION: ',FILENAME[I]);
END;
ASSIGN (F[I],FILENAME[I]);
REWRITE (F[I]);
END;
FOR I:=1 TO NUMCOL DO
BEGIN
X:=5;èWRITELN (F[I],X); {LEVEL}
X:=NUMROW;
WRITELN (F[I],X); {N OF NEW COL}
X:=NUMLEVEL;
WRITELN (F[I],X); {N OF NEW ROW}
X:=NUMCELL;
WRITELN (F[I],X); {N IN CELL}
END;
FOR I:=1 TO NUMCOL DO
BEGIN
FOR J:=1 TO NUMROW DO
BEGIN
FOR M:=1 TO NUMLEVEL DO
BEGIN
FOR K:=1 TO NUMCELL DO
BEGIN
READLN (XFILE,X);
WRITELN (F[I],X);
END;
END;
END;
END;
FOR I:=1 TO NUMCOL DO
BEGINèCLOSE (F[I]);
END;
CLOSE (XFILE);
END;
PROCEDURE MERGE;
BEGIN
WRITELN ('ROW BY COLUMN BY LEVEL DATA MERGE FROM N COLUMN BY ROW FILES');
WRITE ('DO YOU WANT A PRINTOUT (Y/N)');
READLN (SWITCH3);
IF SWITCH3='Y' THEN SWITCH4:=1;
IF SWITCH3='y' THEN SWITCH4:=1;
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'ROW BY COLUMN DATA MERGE FROM N COLUMN BY ROW FILES');
END;
WRITE ('NAME OF FINAL FILE: ');
READLN (FILENAMX);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NAME OF FINAL FILE: ',FILENAMX);
END;
ASSIGN (XFILE,FILENAMX);
REWRITE (XFILE);
X:=6;
WRITELN (XFILE,X); {LEVEL}
WRITE ('NUMBER OF FILES TO MERGE = ');èREADLN (NUMCOL);
X:=NUMCOL;
WRITELN (XFILE,X); {COL}
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER OF FILES TO MERGE = ',NUMCOL);
END;
FOR I:=1 TO NUMCOL DO
BEGIN
WRITE ('NAME OF FILE ',I,' TO MERGE: ');
READLN (FILENAME[I]);
ASSIGN (F[I],FILENAME[I]);
RESET (F[I]);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NAME OF FILE ',I,' TO MERGE: ',FILENAME[I]);
END;
END;
FOR I:=1 TO NUMCOL DO
BEGIN
READLN (F[I],X); {LEVEL}
READLN (F[I],X); {N OF OLD COL, NEW ROW}
NUMROW:=ROUND(X);
READLN (F[I],X); {N OF OLD ROW, NEW LEVEL}
NUMLEVEL:=ROUND(X);èREADLN (F[I],X); {N IN CELL}
NUMCELL:=ROUND(X);
END;
X:=NUMROW;
WRITELN (XFILE,X); {ROWS};
WRITELN ('NUMBER OF ROWS IN THE NEW DATA = ',NUMROW);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER OF ROWS IN THE NEW DATA = ',NUMROW);
END;
X:=NUMLEVEL;
WRITELN (XFILE,X); {LEVEL}
WRITELN ('NUMBER OF LEVELS IN THE NEW DATA = ',NUMLEVEL);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER OF LEVELS IN THE NEW DATA = ',NUMLEVEL);
END;
X:=NUMCELL;
WRITELN (XFILE,X);
WRITELN ('NUMBER OF ITEMS PER CELL = ',NUMCELL);
IF SWITCH4=1 THEN BEGIN
WRITELN (LST,'NUMBER OF ITEMS PER CELL = ',NUMCELL);
END;
FOR I:=1 TO NUMCOL DO
FOR J:=1 TO (NUMROW*NUMCELL*NUMLEVEL) DO
BEGIN
READLN (F[I],X);èWRITELN (XFILE,X);
END;
FOR I:=1 TO NUMCOL DO
BEGIN
CLOSE (F[I]);
END;
CLOSE (XFILE);
END;
BEGIN
WRITELN ('ROW BY COLUMN BY LEVEL DATA MANAGEMENT SYSTEM. IN THIS FORM,');
WRITELN ('THE DATA IS USED FOR THE THREE WAY ANALYSIS OF VARIANCE PROGRAMS.');
WRITELN ('SINCE THE CELLS MUST BE EQUAL, THE PROGRAM REQUIRES THAT ANY DATA');
WRITELN ('ADDITION OR DELETION BE DONE IN ALL CELLS. WHEN COMBINING, REMEMBER ');
WRITELN ('THAT THE FILES TO BE COMBINED MUST HAVE THE SAME NUMBER OF COLUMNS');
WRITELN ('ROWS AND LEVELS. THE SEPARATION OPTION CREATES N COLUMN BY ROW FILES');
WRITELN ('FROM THE ORIGINAL COLUMN BY ROW BY LEVEL FILE. IN OTHER WORDS, THE');
WRITELN ('OPTION CREATES TWO WAY FILES FROM A THREE WAY FILE. WHAT WERE COLUMNS');
WRITELN ('IN THE ORIGINAL FILE BECOMES SEPARATE FILES, WHAT WERE ROWS NOW BECOME');
WRITELN ('THE COLUMNS IN THE NEW TWO WAY FILE, AND WHAT WERE LEVELS BECOME ROWS.');
WRITELN ('THE MERGE PROGRAM WORKS EXACTLY IN THE REVERSE AND CREATES AN N COLUMN');
WRITELN ('THREE WAY DATA FILE FROM N TWO WAY DATA FILES.');èWRITELN;
WRITELN ('WARNING!');
WRITEL╬á (º D╧ NO╘ GIV┼ TH┼ FIL┼ TH┼ NAM┼ O╞ ┴ FIL┼ THA╘ ALREADY EXISTS');
WRITELN (' ON THE DISK OR THE OLD FILE WILL BE ERASED.');
WRITELN;
WRITELN ('ENTER A CARRIAGE RETURN TO CONTINUE');
READLN (C);
REPEAT;
WRITELN ('1. INPUT OF NEW DATA FILE--ENTER A 1');
WRITELN ('2. OUTPUT OF AN EXISTING DATA FILE--ENTER A 2');
WRITELN ('3. ADDITION OF PAIRS TO AN EXISTING DATA FILE--ENTER A 3');
WRITELN ('4. CORRECTION OF PAIRS IN EXISTING DATA FILE--ENTER A 4');
WRITELN ('5. DELETION OF ITEMS IN AN EXISTING DATA FILE--ENTER A 5');
WRITELN ('6. COMBINATION OF TWO EXISTING DATA FILES INTO ONE--ENTER A 6');
WRITELN ('7. SEPARATION OF A FILE INTO N SINGLE COLUMNS--ENTER A 7');
WRITELN ('8. MERGING OF N SINGLE COLUMNS INTO A FILE--ENTER AN 8');
WRITE ('CHOICE: ');
READLN (CHOICE);
CASE CHOICE OF
1:DATAIN;
2:DATAOUT;
3:DATAADD;
4:CORRECT;
5:DELETE;
6:COMBINE;
7:SEPARATE;è8:MERGE;
END;
WRITE ('DO YOU WANT ANOTHER RUN, (Y/N): ');
READLN (C);
WHILE NOT (C IN ['Y','y','n','N']) DO
BEGIN
WRITE ('TYPE Y FOR YES, OR N FOR NO: ');
READLN (C);
END;
SWITCH2:=C IN ['N','n'];
UNTIL SWITCH2;
END.